package cn.jilian.meta.handler.domain;

import java.util.Collection;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonIgnore;

import cn.jilian.meta.handler.domain.utils.Grouper;
import cn.jilian.meta.handler.domain.utils.Sorter;

public class AbstractStore {
	
	private String name;
	
	private String storeId;

	private Boolean autoDestroy;
	
	private Collection<Object> filters;
	
	private Grouper grouper;
	
	private String groupField;
	
	private String groupDir;
	
	private Integer pageSize;
	
	private Boolean remoteFilter;
	
	private Boolean remoteSort;
	
	private Collection<Sorter> sorters;
	
	private Boolean statefulFilters;
	
	private Map<String,Function> listeners;

	public String getStoreId() {
		return storeId;
	}

	public void setStoreId(String storeId) {
		this.storeId = storeId;
	}

	public Boolean getAutoDestroy() {
		return autoDestroy;
	}

	public void setAutoDestroy(Boolean autoDestroy) {
		this.autoDestroy = autoDestroy;
	}

	public Collection<Object> getFilters() {
		return filters;
	}

	public void setFilters(Collection<Object> filters) {
		this.filters = filters;
	}

	public Grouper getGrouper() {
		return grouper;
	}

	public void setGrouper(Grouper grouper) {
		this.grouper = grouper;
	}

	public String getGroupField() {
		return groupField;
	}

	public void setGroupField(String groupField) {
		this.groupField = groupField;
	}

	public String getGroupDir() {
		return groupDir;
	}

	public void setGroupDir(String groupDir) {
		this.groupDir = groupDir;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public Boolean getRemoteFilter() {
		return remoteFilter;
	}

	public void setRemoteFilter(Boolean remoteFilter) {
		this.remoteFilter = remoteFilter;
	}

	public Boolean getRemoteSort() {
		return remoteSort;
	}

	public void setRemoteSort(Boolean remoteSort) {
		this.remoteSort = remoteSort;
	}

	public Collection<Sorter> getSorters() {
		return sorters;
	}

	public void setSorters(Collection<Sorter> sorters) {
		this.sorters = sorters;
	}

	public Boolean getStatefulFilters() {
		return statefulFilters;
	}

	public void setStatefulFilters(Boolean statefulFilters) {
		this.statefulFilters = statefulFilters;
	}
	public Map<String, Function> getListeners() {
		return listeners;
	}

	public void setListeners(Map<String, Function> listeners) {
		this.listeners = listeners;
	}

	@JsonIgnore
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
}
